Modul:Rätsel Infobox
local p = {} local infobox local Spiel local categories = {} -- Categories to add local function getPuzzle( game, number ) if number "???" then -- Hidden Door local hd = { "2" = 154, "3" = 169 } number = hdgame end local data = mw.loadData( "Modul:RätselDaten/" .. game ) return datatonumber(number) end local function isEmpty( arg ) return not arg or arg '' end local function addCategory( category ) categories#categories+1 = "Kategorie:" .. category .. "" end local function createInfobox( Spiel ) local borders = { "1" = "001633", "2" = "A40000", "3" = "001633", "4" = "001633", "5" = "001633", "6" = "001633", "VS" = "001633" } local backgrounds = { "1" = "7cb4d2", "2" = "7cb4d2", "3" = "7cb4d2", "4" = "7cb4d2", "5" = "7cb4d2", "6" = "7cb4d2", "VS" = "7cb4d2" } local myborder = bordersSpiel local mybackground = backgroundsSpiel infobox = mw.html.create( "table" ):addClass( "infobox" ) if myborder then infobox:css( "border", "2px solid #" .. myborder ) end if mybackground then infobox:css( "background-color", "#" .. tostring( mybackground ) ) end end local function addTitleRow( Name ) if not Name then Name = mw.title.getCurrentTitle().text end infobox :tag( "tr" ) :tag( "th" ) :attr( "colspan", 2 ) :addClass( "infoboxheader" ) :wikitext( Name ) end local function addImageRow( Bild ) infobox :tag( "tr" ) :tag( "th" ) :attr( "colspan", 2 ) :css( "padding","0.5em" ) :wikitext( "link=" ) end local function addHeaderRow( text ) infobox :tag( "tr" ) :tag( "th" ) :attr( "colspan", 2 ) :addClass( "color1" ) :wikitext(text) end local function addRow( label, content, altText ) if isEmpty( content ) then if altText then content = altText else return end end local row = infobox:tag( "tr" ) row:tag( "td" ) :addClass( "farbe1" ) :wikitext( label ) row:tag( "td" ) :addClass( "farbe2" ) :wikitext( content ) return row end function p.main( frame ) local args = frame:getParent().args -- Template parameters (like } etc) local puzzle = getPuzzle( args.Spiel, args.Nummer ) -- Data from the PuzzleData modules createInfobox( args.Spiel ) Spiel = args.Spiel -- ## TITEL ## addTitleRow( args.Name ) -- ## BILD ## local Bild = args.Bild or ( "PL" .. args.Spiel .. "-" .. args.Nummer .. ".png" ) addImageRow( Bild ) -- ## SPRACHEN ## addHeaderRow( "In anderen Sprachen" ) -- JP if not isEmpty(args.Romaji) then local Romaji = args.Romaji args.Jp = args.Jp .. " " .. Romaji .. "" addRow( "link= Japanisch", args.Jp ) else addRow( "link= Japanisch", args.Jp ) end -- EN (US/UK) if not isEmpty(args.En) then -- Englisch addRow( "17px|link= Englisch", args.En ) else -- Amerikanisch & Britisch addRow( "link= Amerikanisch", args.Us ) addRow( "link= Britisch", args.Uk ) end -- FR addRow( "link= Französisch", args.Fr, "Unbekannt" ) if isEmpty( args.Fr ) then addCategory( "Französischer Titel fehlt" ) end -- IT addRow( "link= Italienisch", args.It, "Unbekannt" ) if isEmpty( args.It ) then addCategory( "Italienischer Titel fehlt" ) end -- KR if not isEmpty(args.Kr_Umschrift) then local Kr_Umschrift = args"Kr-Umschrift" args.Kr = args.Kr .. " " .. Kr_Umschrift .. "" addRow( "link= Koreanisch", args.Kr ) else addRow( "link= Koreanisch", args.Kr ) end -- NL addRow( "link= Niederländisch", args.Nl ) -- SP addRow( "link= Spanisch", args.Sp, "Unbekannt" ) if isEmpty( args.Sp ) then addCategory( "Spanischer Titel fehlt" ) end -- ## INFORMATIONEN ## addHeaderRow( "Informationen" ) -- Nummer local Anzahl = { "1" = "135", "2" = "153", "3" = "168", "4" = "170", "5" = "150", "6" = "165", "VS" = "82" } addRow( "Rätsel-Nummer", args.Nummer .. "/" .. ( Anzahlargs.Spiel ) ) -- Spiel local Spiele = { "1" = "Professor Layton und das Geheimnisvolle Dorf", "2" = "Professor Layton und die Schatulle der Pandora", "3" = "Professor Layton und die verlorene Zukunft", "4" = "Professor Layton und der Ruf des Phantoms", "5" = "Professor Layton und die Maske der Wunder", "6" = "Professor Layton und das Vermächtnis von Aslant", "VS" = "Professor Layton vs. Phoenix Wright: Ace Attorney" } addRow( "Spiel", "[.. ( Spiele[args.Spiel or "" ) .. "]]" ) -- Pikarat if puzzle.pikarat then addRow( "Pikarat", puzzle.pikarat ) addCategory( ( puzzle.pikarat or 0 ) .. " Pikarat" ) end -- Typ if puzzle.typ then local typ = puzzle.typ addCategory( "Typ:" .. puzzle.typ ) if puzzle.typ2 then typ = typ .. "/" .. puzzle.typ2 addCategory( "Typ:" .. puzzle.typ2 ) end -- Bald: typ = "" .. typ .. "/" .. puzzle.typ2 .. "" addRow( "Typ", typ ) end -- Ort if puzzle.ort then addRow( "Ort", "" .. puzzle.ort .. "" ) addCategory( "Ort:" .. puzzle.ort ) end -- Kapitel if puzzle.kapitel then addRow( "Kapitel", "" .. puzzle.kapitel .. "" ) end -- Person if puzzle.person then addRow( "Gestellt von", "" .. puzzle.person .. "" ) end -- Gelöst von if puzzle.loeser then addRow( "Gelöst von", "" .. puzzle.loeser .. "" ) end -- Belohnung if isEmpty( args.Belohnung ) then addRow( "Belohnung", "Keine"):addClass( "letztezeile" ) else addRow( "Belohnung", args.Belohnung ):addClass( "letztezeile" ) end return tostring( infobox ) .. table.concat( categories ) end return p --